package com.proyecto.personas.modelo.validacion.proyecto;

import com.proyecto.core.modelo.excepciones.GeneralException;
import com.proyecto.core.modelo.validacion.IValidacionServicio;
import com.proyecto.personas.modelo.dto.EdoCivil;
import com.proyecto.personas.modelo.dto.EdoCivilId;

public class ValidacionServicioEstadoCivil implements IValidacionServicio {

	public void buscarCatalogoPorPropiedad(String atributo, String valor)
			throws GeneralException {
		if (atributo == null || valor == null || atributo.equals("")
				|| valor.equals("")) {
			throw new GeneralException(
					"error.persona.tablaApoyo.edoCivil.buscarCatalogoXPropiedad.parametrosInvalidos");
		}
	}

	public void consultar(Object o) throws GeneralException {
		EdoCivilId objEdoCivil = (EdoCivilId) o;
		if (o == null || objEdoCivil.getCiaopr() == null
				|| objEdoCivil.getCiaopr().trim().equals("")
				|| objEdoCivil.getEdocivilcod() == null
				|| objEdoCivil.getEdocivilcod().trim().equals("")) {
			throw new GeneralException(
					"error.persona.tablaApoyo.edoCivil.consulta.pkNull");
		}

	}

	public void consultarTodos(Object o) throws GeneralException {
		// TODO Auto-generated method stub
		if (o == null) {
			throw new GeneralException(
					"error.persona.tablaApoyo.edoCivil.consulta.pkNull");
		}
	}

	public void eliminar(Object o) throws GeneralException {
		EdoCivil objEdoCivil = (EdoCivil) o;
		if (objEdoCivil == null || objEdoCivil.getId().getCiaopr() == null
				|| objEdoCivil.getId().getCiaopr().trim().equals("")
				|| objEdoCivil.getId().getEdocivilcod() == null
				|| objEdoCivil.getId().getEdocivilcod().trim().equals("")) {
			throw new GeneralException(
					"error.persona.tablaApoyo.edoCivil.eliminar.pkNull");
		}
	}

	public void incluir(Object o) throws GeneralException {
		EdoCivil objEdoCivil = (EdoCivil) o;
		if (objEdoCivil == null  || objEdoCivil.getId()==null
				|| objEdoCivil.getId().getCiaopr() == null
				|| objEdoCivil.getId().getCiaopr().trim().equals("")) {
			throw new GeneralException(
					"error.persona.tablaApoyo.edoCivil.incluir.pkNull");
		} else if (objEdoCivil.getValorpordefecto() == null
				|| objEdoCivil.getValorpordefecto().trim().equals("")) {
			objEdoCivil.setValorpordefecto("N");
		}
		
		this.validaCampos(objEdoCivil);
		
		
	}

	public void modificar(Object o) throws GeneralException {
		EdoCivil objEdoCivil = (EdoCivil) o;
		if (objEdoCivil == null || objEdoCivil.getId().getCiaopr() == null
				|| objEdoCivil.getId().getCiaopr().trim().equals("")
				|| objEdoCivil.getId().getEdocivilcod() == null
				|| objEdoCivil.getId().getEdocivilcod().trim().equals("")
				|| objEdoCivil.getEdocivilnombre() == null
				|| objEdoCivil.getEdocivilnombre().trim().equals("")) {
			throw new GeneralException(
					"error.persona.tablaApoyo.edoCivil.modificar.pkNull");
		} else if (objEdoCivil.getValorpordefecto() == null
				|| objEdoCivil.getValorpordefecto().trim().equals("")) {
			objEdoCivil.setValorpordefecto("N");
		}
		this.validaCampos(objEdoCivil);
	}
	
	private void validaCampos(EdoCivil objEdoCivil) throws GeneralException {
		//Validamoa campos requeridos...
		String campos = "";
//		TODO: cambiar estos campos de la lectura de un .properties			
		if (objEdoCivil.getId().getEdocivilcod()== null
				|| "".equals(objEdoCivil.getId().getEdocivilcod().trim())) {
			campos = campos + "CPTablaApoyoEstadoCivil.CodigoEstadoCivil;";
		}
		if (objEdoCivil.getEdocivilnombre() == null
				|| "".equals(objEdoCivil.getEdocivilnombre().trim())) {
			campos = campos + "CPTablaApoyoEstadoCivil.NombreEstadoCivil";
		}
		if (!"".equals(campos)) {
			throw new GeneralException("error.persona.tablaApoyo.edoCivil.campos_obligatorios",campos);
		}		
	}

}
